package com.hspedu.bignum_;

import java.math.BigDecimal;

/**
 * @author DL5O
 * @version 1.0
 */
public class BigDecimal_ {
    public static void main(String[] args) {
        //我们需要一个很高的精度的数，double 不够用，那么就使用BigDecimal

       /* double d = 199.655645648657465d;
        System.out.println(d);//199.65564564865747*/

        BigDecimal bigDecimal = new BigDecimal("1999.111111999999999999999999999");
        BigDecimal bigDecimal1 = new BigDecimal("1.1");
        System.out.println(bigDecimal);

        //老韩解读
        //1.如果对 BigDecimal 进行运算也不能直接使用 +-*/，比如加减乘除
        //2.创建一个需要操作的 BigDecimal 然后调用相应的方法即可
        BigDecimal add = bigDecimal.add(bigDecimal1);
        System.out.println(add);

        BigDecimal subtract = bigDecimal.subtract(bigDecimal1);
        System.out.println(subtract);

        System.out.println(bigDecimal.multiply(bigDecimal1));
        System.out.println(bigDecimal.divide(bigDecimal1,BigDecimal.ROUND_CEILING));
        //可能抛出异常，可能会有小数点除不尽的情况，无限循环小数，ArithmeticException
        //如何解决：在调用divide指定精度即可,如果有无限循环小数，就会保留 分子的精度
    }
}
